<html>
<head><meta charset="utf-8"><title>design meeting 2019.06.14 · t-compiler · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/index.html">t-compiler</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html">design meeting 2019.06.14</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="168137240"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168137240" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168137240">(Jun 14 2019 at 14:01)</a>:</h4>
<p>Hi <span class="user-group-mention" data-user-group-id="897">@T-compiler/meeting</span> =)</p>



<a name="168137263"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168137263" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168137263">(Jun 14 2019 at 14:01)</a>:</h4>
<p>just got here!</p>



<a name="168137281"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168137281" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168137281">(Jun 14 2019 at 14:01)</a>:</h4>
<p>Today we had scheduled to discuss <a href="https://github.com/rust-lang/compiler-team/issues/104" target="_blank" title="https://github.com/rust-lang/compiler-team/issues/104">compiler-team#104</a></p>



<a name="168137336"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168137336" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168137336">(Jun 14 2019 at 14:02)</a>:</h4>
<p>I'll go fix <a href="https://github.com/rust-lang/rust/pull/61817#issuecomment-501948291" target="_blank" title="https://github.com/rust-lang/rust/pull/61817#issuecomment-501948291">https://github.com/rust-lang/rust/pull/61817#issuecomment-501948291</a> now</p>



<a name="168137340"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168137340" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168137340">(Jun 14 2019 at 14:02)</a>:</h4>
<ul>
<li><strong>Title:</strong> Planning the <code>'gcx, 'tcx</code> transition</li>
<li><strong>Type:</strong> technical</li>
<li><strong>Proposed by:</strong> @nikomatsakis (but cc @eddyb, @Zoxc)</li>
<li><strong>Link:</strong> <a href="https://hackmd.io/vtYAICC-SpqgwByjS_E_Uw" target="_blank" title="https://hackmd.io/vtYAICC-SpqgwByjS_E_Uw">hackmd document here</a></li>
<li><strong>Scheduled dates for discussion:</strong><ul>
<li>2019-06-14</li>
</ul>
</li>
</ul>



<a name="168137372"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168137372" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Zoxc <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168137372">(Jun 14 2019 at 14:02)</a>:</h4>
<p>Step 1) Merge <a href="https://github.com/rust-lang/rust/pull/61817" target="_blank" title="https://github.com/rust-lang/rust/pull/61817">https://github.com/rust-lang/rust/pull/61817</a><br>
Step 2) Done? =P</p>



<a name="168137397"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168137397" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168137397">(Jun 14 2019 at 14:03)</a>:</h4>
<p>well in principle I guess we wanted to check whether this is the final product</p>



<a name="168137404"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168137404" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168137404">(Jun 14 2019 at 14:03)</a>:</h4>
<p>there were musings about e.g. renaming the variables</p>



<a name="168137418"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168137418" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168137418">(Jun 14 2019 at 14:03)</a>:</h4>
<p>(to <code>cx</code> or <code>db</code> or what not)</p>



<a name="168137419"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168137419" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168137419">(Jun 14 2019 at 14:03)</a>:</h4>
<p>Yeah so I think the technical questions of how to do the merge have largely been resolved but</p>



<a name="168137428"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168137428" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168137428">(Jun 14 2019 at 14:03)</a>:</h4>
<p>so, I was going to take a gradual approach</p>



<a name="168137444"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168137444" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168137444">(Jun 14 2019 at 14:03)</a>:</h4>
<p>(a) do we just want to let PRs bitrot? (I think yes)</p>



<a name="168137461"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168137461" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168137461">(Jun 14 2019 at 14:04)</a>:</h4>
<p>but it'd be good if we advice for authors</p>



<a name="168137503"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168137503" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168137503">(Jun 14 2019 at 14:04)</a>:</h4>
<p>on how to update</p>



<a name="168137509"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168137509" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168137509">(Jun 14 2019 at 14:04)</a>:</h4>
<p>but since it's possible to do it uniformly, in-place, I think we should separate getting to <code>tcx: TyCtxt&lt;'tcx&gt;</code> from renaming it in the future</p>



<a name="168137510"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168137510" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Zoxc <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168137510">(Jun 14 2019 at 14:04)</a>:</h4>
<p>We already broke PRs by removing <code>'a</code> from <code>TyCtxt</code></p>



<a name="168137519"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168137519" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168137519">(Jun 14 2019 at 14:04)</a>:</h4>
<p>that doesn't invalidate what I wrote :)</p>



<a name="168137532"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168137532" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168137532">(Jun 14 2019 at 14:04)</a>:</h4>
<p>the rustc guide should be updated ASAP</p>



<a name="168137554"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168137554" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168137554">(Jun 14 2019 at 14:04)</a>:</h4>
<p>and (b) let's talk a bit about the ultimate naming and conventions we want, I think?</p>



<a name="168137559"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168137559" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168137559">(Jun 14 2019 at 14:04)</a>:</h4>
<p>But let's start with (a) ?</p>



<a name="168137560"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168137560" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Zoxc <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168137560">(Jun 14 2019 at 14:04)</a>:</h4>
<p>I think renaming <code>TyCtxt</code> to <code>QueryCtxt</code> makes sense. And it make make sense to do it now, since we brake PRs anyway</p>



<a name="168137572"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168137572" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168137572">(Jun 14 2019 at 14:05)</a>:</h4>
<p>I think what would be useful is</p>



<a name="168137605"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168137605" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168137605">(Jun 14 2019 at 14:05)</a>:</h4>
<p>well hmm I wonder if we can do it without knowing our end state.. I think it'd be useful to have some tracking issue showing the steps for the transition</p>



<a name="168137624"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168137624" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168137624">(Jun 14 2019 at 14:05)</a>:</h4>
<p>and giving some advice -- it seems like eddyb  did the work by some brute force search and replace</p>



<a name="168137631"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168137631" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168137631">(Jun 14 2019 at 14:05)</a>:</h4>
<p>so just copying and pasting those steps is what I have in mind</p>



<a name="168137639"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168137639" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168137639">(Jun 14 2019 at 14:05)</a>:</h4>
<p>(so others can do them on their code)</p>



<a name="168137700"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168137700" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168137700">(Jun 14 2019 at 14:06)</a>:</h4>
<p>note that these changes were hard because they're not just alpha renames, the type parametrization changes :P</p>



<a name="168137725"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168137725" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168137725">(Jun 14 2019 at 14:06)</a>:</h4>
<p>Say a bit more?</p>



<a name="168137741"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168137741" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168137741">(Jun 14 2019 at 14:06)</a>:</h4>
<p>ah I see, you mean fixing their PRs, not renaming the contexts in the future</p>



<a name="168137771"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168137771" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168137771">(Jun 14 2019 at 14:07)</a>:</h4>
<p>right so we've already landed the <code>'a</code> removal PR --</p>



<a name="168137784"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168137784" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168137784">(Jun 14 2019 at 14:07)</a>:</h4>
<p>so the fix for that is basically .. rewrite <code>TyCtxt&lt;'_, ...&gt;</code> to <code>TyCtxt&lt;...&gt;</code></p>



<a name="168137789"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168137789" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168137789">(Jun 14 2019 at 14:07)</a>:</h4>
<p>I suspect, however, that most conflicts would be fixed by simply reacting to compiler errors</p>



<a name="168137795"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168137795" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168137795">(Jun 14 2019 at 14:07)</a>:</h4>
<p>once we land the next PR, there are some more rewrites?</p>



<a name="168137804"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168137804" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168137804">(Jun 14 2019 at 14:07)</a>:</h4>
<p>most PRs don't touch signatures that much</p>



<a name="168137806"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168137806" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168137806">(Jun 14 2019 at 14:07)</a>:</h4>
<blockquote>
<p>I suspect, however, that most conflicts would be fixed by simply reacting to compiler errors</p>
</blockquote>
<p>well having context for what was done is really helpful</p>



<a name="168137899"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168137899" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168137899">(Jun 14 2019 at 14:08)</a>:</h4>
<p>right, I just mean, you don't need my mass-replacement tricks, you can just go <code>TyCtxt&lt;?, ?, 'tcx&gt;</code> -&gt; <code>TyCtxt&lt;'tcx&gt;</code> and you're good to go</p>



<a name="168137904"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168137904" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168137904">(Jun 14 2019 at 14:08)</a>:</h4>
<p>so at least for the historical record <span class="user-mention" data-user-id="119009">@eddyb</span> can you highlight the steps that have happened thus far, up to and including <a href="https://github.com/rust-lang/rust/pull/61817" target="_blank" title="https://github.com/rust-lang/rust/pull/61817">https://github.com/rust-lang/rust/pull/61817</a> ?</p>



<a name="168137923"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168137923" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168137923">(Jun 14 2019 at 14:08)</a>:</h4>
<p>right, ok</p>



<a name="168137926"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168137926" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168137926">(Jun 14 2019 at 14:08)</a>:</h4>
<p>makes sense</p>



<a name="168137949"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168137949" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168137949">(Jun 14 2019 at 14:09)</a>:</h4>
<p>we've banned unused lifetimes: <a href="https://github.com/rust-lang/rust/issues/61735" target="_blank" title="https://github.com/rust-lang/rust/issues/61735">#61735</a> (this means that when you replace uses of a lifetime you'll also be directed to remove its definition, if explicit)</p>



<a name="168137953"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168137953" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168137953">(Jun 14 2019 at 14:09)</a>:</h4>
<p>at the moment, <code>lift</code> is still a thing -- I'm trying to remember -- I guess there are no other massive simplifications yet?</p>



<a name="168137982"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168137982" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168137982">(Jun 14 2019 at 14:09)</a>:</h4>
<p>/me takes some notes in the hackmd</p>



<a name="168138033"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168138033" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168138033">(Jun 14 2019 at 14:10)</a>:</h4>
<p>(what was the PR that removed the <code>'a</code> from <code>TyCtxt</code>?)</p>



<a name="168138066"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168138066" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168138066">(Jun 14 2019 at 14:10)</a>:</h4>
<p>you're too fast for me!</p>



<a name="168138085"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168138085" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Zoxc <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168138085">(Jun 14 2019 at 14:10)</a>:</h4>
<p><a href="https://github.com/rust-lang/rust/pull/61722" target="_blank" title="https://github.com/rust-lang/rust/pull/61722">https://github.com/rust-lang/rust/pull/61722</a></p>



<a name="168138097"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168138097" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168138097">(Jun 14 2019 at 14:10)</a>:</h4>
<p>we've removed the first lifetime of <code>TyCtxt</code>: <a href="https://github.com/rust-lang/rust/issues/61722" target="_blank" title="https://github.com/rust-lang/rust/issues/61722">#61722</a> - affected PRs need to do the same, and simply remove unused lifetimes after that</p>



<a name="168138189"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168138189" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168138189">(Jun 14 2019 at 14:11)</a>:</h4>
<p>and finally, <a href="https://github.com/rust-lang/rust/issues/61817" target="_blank" title="https://github.com/rust-lang/rust/issues/61817">#61817</a> requires replacing <code>'gcx</code> lifetimes with <code>'tcx</code> ones, and passing one less lifetime when <code>'gcx, 'tcx</code> was previously taken</p>



<a name="168138280"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168138280" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168138280">(Jun 14 2019 at 14:12)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> one guiding principle is that when adapting your code past this PR you <em>should never</em> need to introduce a new lifetime, you're only removing them</p>



<a name="168138312"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168138312" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168138312">(Jun 14 2019 at 14:12)</a>:</h4>
<ul>
<li>PRs thus far:<br>
    - ban unused lifetimes: <a href="https://github.com/rust-lang/rust/pull/61722" target="_blank" title="https://github.com/rust-lang/rust/pull/61722">#61735</a><br>
    - remove the <code>'a</code> <a href="https://github.com/rust-lang/rust/pull/61722" target="_blank" title="https://github.com/rust-lang/rust/pull/61722">#61722</a><br>
    - centralize to <code>TyCtxt&lt;'tcx&gt;</code> <a href="https://github.com/rust-lang/rust/pull/61817" target="_blank" title="https://github.com/rust-lang/rust/pull/61817">#61817</a></li>
<li>So, to make the transition:<br>
    - rewrite <code>TyCtxt&lt;.., 'tcx&gt;</code> to <code>TyCtxt&lt;'tcx&gt;</code><br>
    - replace unused lifetimes with <code>'_</code>, typically</li>
</ul>



<a name="168138313"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168138313" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168138313">(Jun 14 2019 at 14:12)</a>:</h4>
<p>e.g. adding <code>&lt;'gcx&gt;</code> to an <code>impl</code>/<code>fn</code> is wrong</p>



<a name="168138321"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168138321" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168138321">(Jun 14 2019 at 14:12)</a>:</h4>
<p>that's my summary thus far</p>



<a name="168138326"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168138326" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168138326">(Jun 14 2019 at 14:12)</a>:</h4>
<p>but I'll add that note, that's a good point</p>



<a name="168138346"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168138346" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168138346">(Jun 14 2019 at 14:13)</a>:</h4>
<p>one weird edge case is <code>TyCtxt&lt;'_, 'tcx, '_&gt;</code>, that also needs to become <code>TyCtxt&lt;'tcx&gt;</code></p>



<a name="168138357"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168138357" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168138357">(Jun 14 2019 at 14:13)</a>:</h4>
<p>(so it's not as simple as "leave only the last lifetime")</p>



<a name="168138384"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168138384" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168138384">(Jun 14 2019 at 14:13)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> also, "ask eddyb if you hit a weird issue and they're online" :P</p>



<a name="168138441"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168138441" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168138441">(Jun 14 2019 at 14:14)</a>:</h4>
<p>ok I mean it basically comes down to</p>



<a name="168138449"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168138449" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168138449">(Jun 14 2019 at 14:14)</a>:</h4>
<p>the worst part about <a href="https://github.com/rust-lang/rust/issues/61817" target="_blank" title="https://github.com/rust-lang/rust/issues/61817">#61817</a> was a <code>HashStable</code> <code>impl</code> which used <code>'gcx</code> instead of <code>'a</code> for something and it ended up with a requirement that two unrelated lifetimes be the same</p>



<a name="168138451"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168138451" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168138451">(Jun 14 2019 at 14:14)</a>:</h4>
<p>you probably just always want <code>TyCtxt&lt;'tcx&gt;</code> or <code>TyCtxt&lt;'_&gt;</code>?</p>



<a name="168138454"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168138454" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Zoxc <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168138454">(Jun 14 2019 at 14:14)</a>:</h4>
<p>Yeah, we're doing <code>TyCtxt&lt;'a, 'gcx, 'tcx&gt;</code> to <code>TyCtxt&lt;'gcx&gt;</code> but calling it <code>TyCtxt&lt;'tcx&gt;</code></p>



<a name="168138458"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168138458" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168138458">(Jun 14 2019 at 14:14)</a>:</h4>
<p>and which caused lifetime errors in derived code</p>



<a name="168138463"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168138463" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168138463">(Jun 14 2019 at 14:14)</a>:</h4>
<p>(of course that assumes people are following general conventions)</p>



<a name="168138488"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168138488" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168138488">(Jun 14 2019 at 14:15)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> yes. also, <code>'lcx</code> -&gt; <code>'tcx</code> (but that's much rarer)</p>



<a name="168138590"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168138590" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168138590">(Jun 14 2019 at 14:16)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> something we could do is go over the affected PRs (as reported by @bors) and paste a link to a summary like this?</p>



<a name="168138594"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168138594" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168138594">(Jun 14 2019 at 14:16)</a>:</h4>
<p>OK. this seems great. I'll try to write up some brief notes and open a tracking issue</p>



<a name="168138601"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168138601" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168138601">(Jun 14 2019 at 14:16)</a>:</h4>
<p>I could do it if I don't forget</p>



<a name="168138602"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168138602" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168138602">(Jun 14 2019 at 14:16)</a>:</h4>
<p>and then yeah we can post the link to the affected PRs, I guess</p>



<a name="168138617"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168138617" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168138617">(Jun 14 2019 at 14:16)</a>:</h4>
<p>GitHub already shows a bunch in <a href="https://github.com/rust-lang/rust/issues/61722" target="_blank" title="https://github.com/rust-lang/rust/issues/61722">#61722</a></p>



<a name="168138739"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168138739" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168138739">(Jun 14 2019 at 14:18)</a>:</h4>
<p>should we discuss the bikeshed-y questions? :)</p>



<a name="168138753"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168138753" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168138753">(Jun 14 2019 at 14:18)</a>:</h4>
<p>for "renaming away from TyCtxt", I propose to think about the guiding principles first, and then bikeshed later</p>



<a name="168138821"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168138821" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168138821">(Jun 14 2019 at 14:19)</a>:</h4>
<p>e.g. we <em>really</em> want this context to extend back to parsing, so it having "Ty(pe)" in the name (or "Mir", as I've offhandedly proposed) would be misleading/incorrect. this is why "query" or salsa's "database" ("db") come to mind. other options are some variations on "rustc" or "compile(r)"</p>



<a name="168138920"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168138920" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168138920">(Jun 14 2019 at 14:21)</a>:</h4>
<p>another thing is that we should have an uniform naming scheme for contexts - at some point I renamed a bunch of things in <code>rustc_codegen_llvm</code> using a new scheme, but haven't added it to anything else (that scheme is something like <code>fx: FooCx</code>)</p>



<a name="168138930"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168138930" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Zoxc <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168138930">(Jun 14 2019 at 14:21)</a>:</h4>
<p><span class="user-mention" data-user-id="124287">@mw</span> discussed having other context which only has access to types. So that could be a <code>TyCtxt</code> and <code>QueryCtxt</code>would be the thing with access to executing queries.</p>



<a name="168138943"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168138943" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168138943">(Jun 14 2019 at 14:21)</a>:</h4>
<blockquote>
<p>should we discuss the bikeshed-y questions? :)</p>
</blockquote>
<p>quick note: I created <a href="https://github.com/rust-lang/rust/issues/61838" target="_blank" title="https://github.com/rust-lang/rust/issues/61838">https://github.com/rust-lang/rust/issues/61838</a> (tracking issue)</p>



<a name="168138946"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168138946" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168138946">(Jun 14 2019 at 14:21)</a>:</h4>
<p>what do you mean "only"?!</p>



<a name="168138952"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168138952" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168138952">(Jun 14 2019 at 14:21)</a>:</h4>
<p>very few things work without queries</p>



<a name="168139013"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168139013" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Zoxc <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168139013">(Jun 14 2019 at 14:22)</a>:</h4>
<p>You can create types and do operations on types which do not require queries</p>



<a name="168139024"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168139024" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168139024">(Jun 14 2019 at 14:22)</a>:</h4>
<p>anyway, we should either undo that <code>rustc_codegen_llvm</code> change, use it everywhere, or come up with a third naming scheme</p>



<a name="168139035"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168139035" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168139035">(Jun 14 2019 at 14:22)</a>:</h4>
<p>I agree with <span class="user-mention" data-user-id="119009">@eddyb</span> that linking the name to something specific like <em>types</em> seems overly narrow</p>



<a name="168139044"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168139044" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Vadim Petrochenkov <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168139044">(Jun 14 2019 at 14:22)</a>:</h4>
<blockquote>
<p>I propose to think about the guiding principles first</p>
</blockquote>
<p>1) The shorter the better!</p>



<a name="168139051"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168139051" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168139051">(Jun 14 2019 at 14:22)</a>:</h4>
<p><span class="user-mention" data-user-id="116466">@Zoxc</span> I think that linking together allocation/interning and query execution is important</p>



<a name="168139071"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168139071" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168139071">(Jun 14 2019 at 14:23)</a>:</h4>
<p><span class="user-mention" data-user-id="123856">@Vadim Petrochenkov</span> heh, yeah. this is why I like <code>qx: QueryCx&lt;'q&gt;</code></p>



<a name="168139083"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168139083" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168139083">(Jun 14 2019 at 14:23)</a>:</h4>
<p>As an experience report, I've been very happy with salsa's <code>db: Database</code> convention -- it is very easy to explain and people seem to get it quite naturally.</p>



<a name="168139094"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168139094" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Zoxc <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168139094">(Jun 14 2019 at 14:23)</a>:</h4>
<p>See <a href="https://github.com/rust-lang/rust/pull/59505#issuecomment-478573274" target="_blank" title="https://github.com/rust-lang/rust/pull/59505#issuecomment-478573274">https://github.com/rust-lang/rust/pull/59505#issuecomment-478573274</a></p>



<a name="168139100"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168139100" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168139100">(Jun 14 2019 at 14:23)</a>:</h4>
<p><code>db</code> is also unlikely to arise randomly in code</p>



<a name="168139102"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168139102" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168139102">(Jun 14 2019 at 14:23)</a>:</h4>
<p>But I'm a bit unsure what <span class="user-mention" data-user-id="116466">@Zoxc</span> is saying so I'd like to understand that better</p>



<a name="168139123"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168139123" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168139123">(Jun 14 2019 at 14:23)</a>:</h4>
<p>and <code>db: RustcDb&lt;'db&gt;</code> feels pretty nice</p>



<a name="168139126"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168139126" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168139126">(Jun 14 2019 at 14:23)</a>:</h4>
<blockquote>
<p><code>db</code> is also unlikely to arise randomly in code</p>
</blockquote>
<p><code>db: DiagnosticBuilder</code> ;)</p>



<a name="168139189"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168139189" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168139189">(Jun 14 2019 at 14:24)</a>:</h4>
<p>If I see "db" in a random place in the Rust repo</p>



<a name="168139195"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168139195" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168139195">(Jun 14 2019 at 14:24)</a>:</h4>
<p>its definitely going to be ambiguous</p>



<a name="168139205"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168139205" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168139205">(Jun 14 2019 at 14:24)</a>:</h4>
<p><code>tcx</code> isn't. I suspect <code>qx</code> wouldn't be, either.</p>



<a name="168139211"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168139211" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168139211">(Jun 14 2019 at 14:25)</a>:</h4>
<p><span class="user-mention" data-user-id="124288">@oli</span> dammit</p>



<a name="168139222"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168139222" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168139222">(Jun 14 2019 at 14:25)</a>:</h4>
<blockquote>
<p>See <a href="https://github.com/rust-lang/rust/pull/59505#issuecomment-478573274" target="_blank" title="https://github.com/rust-lang/rust/pull/59505#issuecomment-478573274">https://github.com/rust-lang/rust/pull/59505#issuecomment-478573274</a></p>
</blockquote>
<p>OK, this helps. So the idea is that sometimes we have "pure functions" and we'd like to give them access to only limited parts of the state, such as the interning caches. The salsa answer here would be to use traits for this -- give that code access to the <code>db</code>, but with a restricted trait (e.g., an <code>db: &amp;impl InterningDatabase</code>)</p>



<a name="168139232"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168139232" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168139232">(Jun 14 2019 at 14:25)</a>:</h4>
<p>(I'm not just talking about source code; I'm including comments or snippets from chat sessions)</p>



<a name="168139240"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168139240" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168139240">(Jun 14 2019 at 14:25)</a>:</h4>
<blockquote>
<p>its definitely going to be ambiguous</p>
</blockquote>
<p>we can of course rewrite those places, but that's more work.</p>



<a name="168139306"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168139306" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168139306">(Jun 14 2019 at 14:26)</a>:</h4>
<p>I don't like the "database" terminology <em>too</em> much in general but it seemed neat in the context of salsa</p>



<a name="168139329"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168139329" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168139329">(Jun 14 2019 at 14:26)</a>:</h4>
<p>I'm thinking about the <code>x</code> convention --</p>



<a name="168139339"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168139339" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168139339">(Jun 14 2019 at 14:26)</a>:</h4>
<p>My experience has been that <code>tcx</code> is very confusing for newcomers</p>



<a name="168139350"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168139350" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168139350">(Jun 14 2019 at 14:26)</a>:</h4>
<p>or at least most of the times that I explain what it is, people go "ah, so that's what it is" :)</p>



<a name="168139371"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168139371" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168139371">(Jun 14 2019 at 14:27)</a>:</h4>
<p>I think it's not a huge deal --</p>



<a name="168139373"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168139373" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168139373">(Jun 14 2019 at 14:27)</a>:</h4>
<p>you have to learn that pretty quickly :)</p>



<a name="168139379"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168139379" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168139379">(Jun 14 2019 at 14:27)</a>:</h4>
<p>but if we can find something that's more immediately accessible, seems good</p>



<a name="168139381"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168139381" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168139381">(Jun 14 2019 at 14:27)</a>:</h4>
<blockquote>
<blockquote>
<p>See <a href="https://github.com/rust-lang/rust/pull/59505#issuecomment-478573274" target="_blank" title="https://github.com/rust-lang/rust/pull/59505#issuecomment-478573274">https://github.com/rust-lang/rust/pull/59505#issuecomment-478573274</a></p>
</blockquote>
<p>OK, this helps. So the idea is that sometimes we have "pure functions" and we'd like to give them access to only limited parts of the state, such as the interning caches. The salsa answer here would be to use traits for this -- give that code access to the <code>db</code>, but with a restricted trait (e.g., an <code>db: &amp;impl InterningDatabase</code>)</p>
</blockquote>
<p>in theory I want to support ideas like this. But in practice, what it often leads to, is that when I'm in the midst of debugging, I end up having to thread state down from a caller in order to get access to the context object (<code>qx</code> or whatever) that I would have otherwise already had on hand.</p>



<a name="168139399"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168139399" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Zoxc <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168139399">(Jun 14 2019 at 14:27)</a>:</h4>
<p>I think having just 1 lifetime instead of 3 is very helpful already</p>



<a name="168139404"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168139404" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168139404">(Jun 14 2019 at 14:27)</a>:</h4>
<p>However, if we continue to offer our thread-local accessors for the <code>qx</code></p>



<a name="168139424"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168139424" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168139424">(Jun 14 2019 at 14:28)</a>:</h4>
<p>I agree that reducing the lifetimes is very helpful :)</p>



<a name="168139479"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168139479" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168139479">(Jun 14 2019 at 14:28)</a>:</h4>
<p>with thread-local accessors, the need to thread the state down goes away (and thus my objection dissolves)</p>



<a name="168139518"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168139518" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168139518">(Jun 14 2019 at 14:28)</a>:</h4>
<p>It seems like "query context" and "database" are the two main contenders right now?</p>



<a name="168139523"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168139523" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168139523">(Jun 14 2019 at 14:28)</a>:</h4>
<p>One other thing I wanted to say:</p>



<a name="168139544"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168139544" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168139544">(Jun 14 2019 at 14:29)</a>:</h4>
<p><span class="user-mention" data-user-id="116083">@pnkfelix</span> oh, regarding that, I wanted to say that <code>lift</code> is still useful for "going between unrelated lifetimes" (i.e. using it with TLS) even though the <code>'tcx -&gt; 'gcx</code> use is gone</p>



<a name="168139572"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168139572" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168139572">(Jun 14 2019 at 14:29)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> something involving "rustc" or "compiler" too</p>



<a name="168139597"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168139597" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168139597">(Jun 14 2019 at 14:29)</a>:</h4>
<p>It's definitely a common thing to have "contexts" all over the code, as <span class="user-mention" data-user-id="119009">@eddyb</span> pointed out, and having a convention there seems good -- but does it make sense for the "main compiler context" to also follow that convenion, or is worth distinguishing it? It's kind of the "ur-context" from which all others derive, and it's special in that it's the only one that hosts queries, so I can see a case for distinct conventions. But not sure.</p>



<a name="168139673"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168139673" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168139673">(Jun 14 2019 at 14:30)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> that's where I see "db" come in</p>



<a name="168139681"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168139681" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168139681">(Jun 14 2019 at 14:30)</a>:</h4>
<p>I wouldn't need to tack "context" onto "db"</p>



<a name="168139685"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168139685" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168139685">(Jun 14 2019 at 14:30)</a>:</h4>
<p>that's kind of my point, right</p>



<a name="168139687"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168139687" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168139687">(Jun 14 2019 at 14:30)</a>:</h4>
<blockquote>
<p>with thread-local accessors, the need to thread the state down goes away (and thus my objection dissolves)</p>
</blockquote>
<p>(and also, when the motivation is not just an abstract notion of "code purity", but rather a concrete thing like "this allows us to use a cache and eases the proof that its correct", then my objection also goes away)</p>



<a name="168139711"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168139711" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168139711">(Jun 14 2019 at 14:30)</a>:</h4>
<p>(I was going to say <span class="user-mention" data-user-id="116083">@pnkfelix</span> that I think the correctness of the incremental caches outweighs that)</p>



<a name="168139746"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168139746" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168139746">(Jun 14 2019 at 14:31)</a>:</h4>
<p>(but I agree that people should generally just take the tcx and be done with it otherwise)</p>



<a name="168139755"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168139755" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168139755">(Jun 14 2019 at 14:31)</a>:</h4>
<p>note that the <code>DiagnosticBuilder</code> case can be ignored, it's easily changed and <span class="user-group-mention" data-user-group-id="1187">@WG-diagnostics</span> is working on stuff in this direction anyway. I just wanted to bring it up</p>



<a name="168139815"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168139815" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168139815">(Jun 14 2019 at 14:31)</a>:</h4>
<p>I don't know how to shorten <code>rustc</code> otherwise <code>rustc: Rustc&lt;'r&gt;</code> might be easier on everyone?</p>



<a name="168139867"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168139867" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168139867">(Jun 14 2019 at 14:32)</a>:</h4>
<p>I also agree it doesn't seem like the <em>killer objection</em></p>



<a name="168139877"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168139877" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168139877">(Jun 14 2019 at 14:32)</a>:</h4>
<p>like, you're passing the compiler around :P</p>



<a name="168139885"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168139885" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168139885">(Jun 14 2019 at 14:32)</a>:</h4>
<blockquote>
<p>I don't know how to shorten <code>rustc</code> otherwise <code>rustc: Rustc&lt;'r&gt;</code> might be easier on everyone?</p>
</blockquote>
<p>that's an interesting idea :)</p>



<a name="168139891"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168139891" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168139891">(Jun 14 2019 at 14:32)</a>:</h4>
<p>(and nowadays we can move the lifetime outside it btw)</p>



<a name="168139932"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168139932" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168139932">(Jun 14 2019 at 14:32)</a>:</h4>
<p>we had to add a lint against <code>&amp;TyCtxt</code> because people intuitively did that</p>



<a name="168139966"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168139966" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168139966">(Jun 14 2019 at 14:33)</a>:</h4>
<p>the other thing that salsa does which I continu to think we may want eventually -- though I know <span class="user-mention" data-user-id="119009">@eddyb</span> has concerns -- is that it breaks up the "database" into traits, one per crate, so that you don't have to define all the queries in one place. This makes it meaningful to talk about things like <code>db: &amp;impl TypeCheckDatabase</code> (just those queries that the type checker needs)</p>



<a name="168139970"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168139970" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168139970">(Jun 14 2019 at 14:33)</a>:</h4>
<p>and <code>TyCtxt</code> being a struct of references is an artifact of the <code>'gcx</code>/<code>'tcx</code> split (I wonder if we'll speed up the codegen time of rustc if we clean that stuff up :P?)</p>



<a name="168139975"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168139975" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168139975">(Jun 14 2019 at 14:33)</a>:</h4>
<p>I feel like names like rustc don't scale to that as easily</p>



<a name="168139987"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168139987" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168139987">(Jun 14 2019 at 14:33)</a>:</h4>
<blockquote>
<p>I don't know how to shorten <code>rustc</code> otherwise <code>rustc: Rustc&lt;'r&gt;</code> might be easier on everyone?</p>
</blockquote>
<p>(what, you think <code>rc</code> might be confusing?) <span aria-label="lol" class="emoji emoji-1f606" role="img" title="lol">:lol:</span></p>



<a name="168139996"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168139996" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168139996">(Jun 14 2019 at 14:33)</a>:</h4>
<p><span class="user-mention" data-user-id="116083">@pnkfelix</span> I almost said it out loud!</p>



<a name="168140002"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168140002" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168140002">(Jun 14 2019 at 14:33)</a>:</h4>
<p>but it seemed too obvious to even bring it up</p>



<a name="168140052"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168140052" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168140052">(Jun 14 2019 at 14:34)</a>:</h4>
<p>"lrc" :P</p>



<a name="168140070"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168140070" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168140070">(Jun 14 2019 at 14:34)</a>:</h4>
<p><code>rs: Rust&lt;'rs&gt;</code></p>



<a name="168140084"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168140084" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168140084">(Jun 14 2019 at 14:34)</a>:</h4>
<p>let's rename <code>rustc</code> to <code>rsc</code></p>



<a name="168140095"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168140095" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168140095">(Jun 14 2019 at 14:34)</a>:</h4>
<p>So I guess we have:</p>
<ul>
<li><code>qx: QueryCx&lt;'q&gt;</code></li>
<li><code>db: Database&lt;'db&gt;</code></li>
<li><code>rs: Rust&lt;'rs&gt;</code> ?</li>
</ul>



<a name="168140104"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168140104" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168140104">(Jun 14 2019 at 14:35)</a>:</h4>
<p>I'm not sure how serious you were <span class="user-mention" data-user-id="119009">@eddyb</span> but it's...kinda cute?</p>



<a name="168140123"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168140123" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168140123">(Jun 14 2019 at 14:35)</a>:</h4>
<p>or doctor rust: <code>rx: Rust&lt;'rx&gt;</code></p>



<a name="168140128"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168140128" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168140128">(Jun 14 2019 at 14:35)</a>:</h4>
<p>do we want to piss off <a href="https://swtch.com/~rsc/" target="_blank" title="https://swtch.com/~rsc/">https://swtch.com/~rsc/</a>, hmmm</p>



<a name="168140151"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168140151" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Zoxc <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168140151">(Jun 14 2019 at 14:35)</a>:</h4>
<p>Also <code>Session&lt;'s&gt;</code>?</p>



<a name="168140155"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168140155" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168140155">(Jun 14 2019 at 14:35)</a>:</h4>
<p>"if you wanted to work on Go why did you put RS in your name"</p>



<a name="168140167"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168140167" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168140167">(Jun 14 2019 at 14:36)</a>:</h4>
<p><span class="user-mention" data-user-id="116466">@Zoxc</span> ah, nice!</p>



<a name="168140227"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168140227" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168140227">(Jun 14 2019 at 14:36)</a>:</h4>
<p>Session?</p>



<a name="168140232"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168140232" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168140232">(Jun 14 2019 at 14:36)</a>:</h4>
<p>/me contemplates</p>



<a name="168140233"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168140233" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168140233">(Jun 14 2019 at 14:36)</a>:</h4>
<p><code>ss: Sess&lt;'ss&gt;</code>. wait, SS has negative connotations :(</p>



<a name="168140253"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168140253" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168140253">(Jun 14 2019 at 14:36)</a>:</h4>
<p>It implies to me that there is something "longer lived" that we are connected to, I guess maybe the incremental state?</p>



<a name="168140256"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168140256" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Zoxc <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168140256">(Jun 14 2019 at 14:36)</a>:</h4>
<p>And merge <code>TyCtxt</code> with our existing <code>Session</code> struct =P</p>



<a name="168140271"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168140271" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168140271">(Jun 14 2019 at 14:36)</a>:</h4>
<p>Ah, yeah, I forgot about the existing <code>sess</code></p>



<a name="168140285"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168140285" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168140285">(Jun 14 2019 at 14:37)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> whereas this context we want is a generation within the session :P?</p>



<a name="168140428"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168140428" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168140428">(Jun 14 2019 at 14:38)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> regarding salsa, and taking inspiration from the <code>FooCx</code> scheme, what about <code>db: &amp;impl TypeckDb</code>?</p>



<a name="168140444"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168140444" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168140444">(Jun 14 2019 at 14:38)</a>:</h4>
<p>I wouldn't mind that</p>



<a name="168140463"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168140463" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168140463">(Jun 14 2019 at 14:39)</a>:</h4>
<p>yes, seems fine. I've been trending away from abbreviations where I can but "db" seems ok</p>



<a name="168140472"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168140472" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Zoxc <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168140472">(Jun 14 2019 at 14:39)</a>:</h4>
<p>I also don't like the database term. That's for storing and loading stuff, not for computation =P</p>



<a name="168140474"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168140474" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168140474">(Jun 14 2019 at 14:39)</a>:</h4>
<p>you could use that to hide all the typesystem-related stuff from <code>libsyntax</code></p>



<a name="168140505"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168140505" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168140505">(Jun 14 2019 at 14:39)</a>:</h4>
<p>/me pours some Prolog clauses onto <span class="user-mention" data-user-id="116466">@Zoxc</span></p>



<a name="168140534"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168140534" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168140534">(Jun 14 2019 at 14:39)</a>:</h4>
<p>(but I used to agree. salsa is the only place where it feels okay)</p>



<a name="168140648"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168140648" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168140648">(Jun 14 2019 at 14:40)</a>:</h4>
<p>hmmmm regarding the libsyntax comment, we might want to switch to salsa's model? instead of making libsyntax depend on librustc?</p>



<a name="168140663"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168140663" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168140663">(Jun 14 2019 at 14:40)</a>:</h4>
<p>I wonder what the performance penalty is like</p>



<a name="168140729"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168140729" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168140729">(Jun 14 2019 at 14:41)</a>:</h4>
<p>we can discuss; I don't know that there is one</p>



<a name="168140791"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168140791" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168140791">(Jun 14 2019 at 14:42)</a>:</h4>
<p>at least in salsa there is just one point of virtual dispatch (or none, if you use <code>&amp;impl ...</code>)</p>



<a name="168140805"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168140805" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168140805">(Jun 14 2019 at 14:42)</a>:</h4>
<p>(i.e., you can use <code>&amp;dyn</code>)</p>



<a name="168140810"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168140810" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168140810">(Jun 14 2019 at 14:42)</a>:</h4>
<p>it might make sense to have <code>librustc_hir</code> and<code>librustc_ty</code> and have code that just doesn't see "more advanced" queries</p>



<a name="168140823"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168140823" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168140823">(Jun 14 2019 at 14:42)</a>:</h4>
<p>yes, I think it makes sense to switch. But it's probably a good topic to dive into later.</p>



<a name="168140843"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168140843" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168140843">(Jun 14 2019 at 14:42)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> OOOOOOOOH</p>



<a name="168140847"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168140847" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168140847">(Jun 14 2019 at 14:42)</a>:</h4>
<p>I feel like we reached the end of our "bikeshedding" section but I don't know if we have a clear consensus</p>



<a name="168140876"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168140876" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168140876">(Jun 14 2019 at 14:43)</a>:</h4>
<p>I guess we could do a little poll :)</p>



<a name="168140884"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168140884" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168140884">(Jun 14 2019 at 14:43)</a>:</h4>
<p>(we should also ask if we think renaming is worthwhile at all)</p>



<a name="168140929"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168140929" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168140929">(Jun 14 2019 at 14:43)</a>:</h4>
<p>I think we can take longer on it</p>



<a name="168140933"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168140933" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168140933">(Jun 14 2019 at 14:44)</a>:</h4>
<p>(I tend to think it is -- I think these little bits of naming add up and form a mental tax that I'm only lately becoming aware of.)</p>



<a name="168140978"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168140978" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168140978">(Jun 14 2019 at 14:44)</a>:</h4>
<p>but I also agree I feel very little rush</p>



<a name="168140993"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168140993" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168140993">(Jun 14 2019 at 14:44)</a>:</h4>
<p>given that <code>tcx: TyCtxt&lt;'tcx&gt;</code> "just works"</p>



<a name="168140996"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168140996" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168140996">(Jun 14 2019 at 14:44)</a>:</h4>
<p>maybe we record the options and let this settle --</p>



<a name="168141020"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168141020" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168141020">(Jun 14 2019 at 14:44)</a>:</h4>
<p>and plan a later session to talk out the salsa composition model and how that might work?</p>



<a name="168141031"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168141031" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168141031">(Jun 14 2019 at 14:44)</a>:</h4>
<p>not sure if that influences the decision but I think maybe it does a little</p>



<a name="168141078"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168141078" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168141078">(Jun 14 2019 at 14:45)</a>:</h4>
<p>so, with salsa: you pay the cost of monomorphization, which I don't think we want (it would cause <code>rustc_interface</code> or <code>rustc_driver</code> to compile <em>the entirety</em> of rustc that uses <code>tcx</code> today. and it doesn't work with the TLS stuff). we'd have to use <code>&amp;dyn</code> everywhere. would <code>&amp;dyn</code> at least not do a virtual call in the case when it hits the cache?</p>



<a name="168141103"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168141103" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168141103">(Jun 14 2019 at 14:45)</a>:</h4>
<p>or is salsa so much simpler than I thought it was =)))</p>
<p>(given the fact that <code>TyCtxt</code> contains one big struct of <code>fn</code> pointers per crate, I thought Salsa also had to store them somewhere)</p>



<a name="168141148"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168141148" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168141148">(Jun 14 2019 at 14:45)</a>:</h4>
<p>There were the options I saw:</p>
<ul>
<li><code>qx: QueryCx&lt;'q&gt;</code></li>
<li><code>db: Database&lt;'db&gt;</code></li>
<li><code>db: RustcDb&lt;'db&gt;</code></li>
<li><code>rs: Rust&lt;'rs&gt;</code></li>
<li><code>rx: Rust&lt;'rx&gt;</code></li>
<li><code>s: Session&lt;'s&gt;</code> //?</li>
</ul>



<a name="168141227"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168141227" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168141227">(Jun 14 2019 at 14:46)</a>:</h4>
<blockquote>
<p>would <code>&amp;dyn</code> at least not do a virtual call in the case when it hits the cache?</p>
</blockquote>
<p>no you do pay a virtual call even when cached</p>



<a name="168141231"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168141231" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168141231">(Jun 14 2019 at 14:46)</a>:</h4>
<p><code>db: RustcDb&lt;'db&gt;</code> is one I liked I think</p>



<a name="168141303"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168141303" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168141303">(Jun 14 2019 at 14:47)</a>:</h4>
<blockquote>
<p>no you do pay a virtual call even when cached</p>
</blockquote>
<p>okay yeah I assumed Salsa was magical when it simply didn't have the same optimizations =))</p>



<a name="168141425"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168141425" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168141425">(Jun 14 2019 at 14:48)</a>:</h4>
<p>I was always hoping we can get incremental to the point where monomorphizing everything at the end is fine</p>



<a name="168141446"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168141446" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168141446">(Jun 14 2019 at 14:49)</a>:</h4>
<p>it's...probably not there yet :)</p>



<a name="168141468"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168141468" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168141468">(Jun 14 2019 at 14:49)</a>:</h4>
<p>All right, thanks everybody! <span aria-label="tada" class="emoji emoji-1f389" role="img" title="tada">:tada:</span></p>



<a name="168141473"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168141473" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168141473">(Jun 14 2019 at 14:49)</a>:</h4>
<p>I really hope we don’t go with <code>db</code>. For some reason I’d even prefer <code>s</code>, which seems absurd ...</p>



<a name="168141499"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168141499" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168141499">(Jun 14 2019 at 14:50)</a>:</h4>
<p>Interesting. I really like it, but I'm open to the alternatives too</p>



<a name="168141596"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168141596" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168141596">(Jun 14 2019 at 14:50)</a>:</h4>
<p>(To me, it just feels like the right metaphor, esp. with queries -- it's the place where all the data lives, and you are fetching things out of it)</p>



<a name="168141615"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168141615" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168141615">(Jun 14 2019 at 14:50)</a>:</h4>
<p>but I am happy to let the options sit a bit</p>



<a name="168141662"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168141662" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168141662">(Jun 14 2019 at 14:51)</a>:</h4>
<p>it probably makes sense to try and record some notes about each option</p>



<a name="168141788"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168141788" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Vadim Petrochenkov <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168141788">(Jun 14 2019 at 14:52)</a>:</h4>
<p>Is it going to be a top level context with nothing above it?</p>



<a name="168141817"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168141817" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Vadim Petrochenkov <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168141817">(Jun 14 2019 at 14:53)</a>:</h4>
<p>Perhaps not because there can be multiple "sessions" with entirely independent contexts?</p>



<a name="168141915"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168141915" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168141915">(Jun 14 2019 at 14:54)</a>:</h4>
<p><span class="user-mention" data-user-id="123856">@Vadim Petrochenkov</span> top-level but there is stuff in <code>rustc_interface</code> which creates one such context for every incremental "generation" (i.e. after every change to the inputs)</p>



<a name="168141931"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168141931" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168141931">(Jun 14 2019 at 14:54)</a>:</h4>
<div class="codehilite"><pre><span></span>- We are not thrilled with `TyCtxt&amp;lt;&#39;tcx&amp;gt;` and are considering some alternatives:
    - `qx: QueryCx&amp;lt;&#39;q&amp;gt;`
        - couple with `x` being the suffix we use for &quot;contexts&quot; in general (this convention was adopted in trans, but not elsewhere)
    - `db: RustcDb&amp;lt;&#39;db&amp;gt;` (or perhaps `db: Database&amp;lt;&#39;db&amp;gt;`)
        - if we do more modules, then `RustcDb` might also be `ParsingDb` (for parsing-related queries), `TypeckDb` (for type-related queries), etc
        - though there are some impl concerns around that; salsa style modules do impose 
            - dyn dispatch for each call, even cache hits; or,
            - monomorphization costs
    - `rs: Rust&amp;lt;&#39;rs&amp;gt;`
    - `rx: Rust&amp;lt;&#39;rx&amp;gt;`
        - this is the &quot;rust compiler&quot;, so maybe that should be the basis of the name?
    - `s: Session&amp;lt;&#39;s&amp;gt;`
        - related to existing `tcx.sess`
        - session of &quot;what&quot;?
</pre></div>



<a name="168141933"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168141933" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168141933">(Jun 14 2019 at 14:54)</a>:</h4>
<p>so it's technically not a rustc session for RLS, because the "session" can survive for many generations</p>



<a name="168141975"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168141975" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168141975">(Jun 14 2019 at 14:55)</a>:</h4>
<p>er, I edited a bit more,</p>



<a name="168141990"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168141990" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168141990">(Jun 14 2019 at 14:55)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> <code>seß: Seß&lt;'seß&gt;</code></p>



<a name="168141991"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168141991" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168141991">(Jun 14 2019 at 14:55)</a>:</h4>
<p>but take a look at <a href="https://hackmd.io/vtYAICC-SpqgwByjS_E_Uw?edit" target="_blank" title="https://hackmd.io/vtYAICC-SpqgwByjS_E_Uw?edit">the hackmd</a> and add your own thoughts</p>



<a name="168141993"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168141993" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168141993">(Jun 14 2019 at 14:55)</a>:</h4>
<p>I can try to consolidate if it gets messy</p>



<a name="168141998"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168141998" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168141998">(Jun 14 2019 at 14:55)</a>:</h4>
<p>I can type that with AltGr+W</p>



<a name="168142077"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168142077" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Zoxc <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168142077">(Jun 14 2019 at 14:56)</a>:</h4>
<p>I prefer just merging crates into librustc instead of having a modular query system, especially since Rust doesn't have a module system</p>



<a name="168142099"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168142099" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168142099">(Jun 14 2019 at 14:56)</a>:</h4>
<p>don't you like to hack around the lack of ML modules with <code>trait</code>s <span aria-label="grinning face with smiling eyes" class="emoji emoji-1f601" role="img" title="grinning face with smiling eyes">:grinning_face_with_smiling_eyes:</span></p>



<a name="168142227"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168142227" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168142227">(Jun 14 2019 at 14:58)</a>:</h4>
<p>the crate separation exists for a reason. I wouldn't want to split the crates <em>too</em> much but I wouldn't e.g. merge <code>libsyntax</code> <em>into</em> <code>librustc</code>, just e.g. the AST (and make <code>libsyntax</code> depend on <code>librustc</code>)</p>



<a name="168142313"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168142313" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Zoxc <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168142313">(Jun 14 2019 at 14:59)</a>:</h4>
<p>It adds too much syntatic overhead, for very little benefit.</p>
<p>I also like having a central list of queries, as it's useful to keep the amount of queries low (for performance reasons) and it gives kind of an overview of the compiler</p>



<a name="168142317"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168142317" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168142317">(Jun 14 2019 at 14:59)</a>:</h4>
<p>ok, I gotta run, but I'll leave the hackmd world editable for a bit longer</p>



<a name="168142339"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168142339" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168142339">(Jun 14 2019 at 14:59)</a>:</h4>
<p>(I would prefer to have a system that supports crate splits, but I don't care to argue it now :)</p>



<a name="168142410"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168142410" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168142410">(Jun 14 2019 at 15:00)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> FWIW the problem is not with incremental - if we do MIR-only rlibs for rustc we'd have codegen at the end anyway - then making the code generic over the context would only result in noise (i.e. new type parameters on every context <code>struct</code>) but not a perf difference</p>



<a name="168142491"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168142491" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168142491">(Jun 14 2019 at 15:01)</a>:</h4>
<p>It does introduce a type parameter, that's true. I've thought about trying to make it so that you have <code>db: DB</code> instead of <code>db: &amp;DB</code>, so that you are just making everything parameteric over the type parameter only</p>



<a name="168142509"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168142509" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168142509">(Jun 14 2019 at 15:01)</a>:</h4>
<p>so it's 1. when codegen happens 2. noooooiseeeee</p>



<a name="168142511"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168142511" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168142511">(Jun 14 2019 at 15:01)</a>:</h4>
<p>(<code>db: impl Database</code>)</p>



<a name="168142522"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168142522" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168142522">(Jun 14 2019 at 15:01)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> one cool thing would be these databases to have not just queries but also arenas/interners for various entities</p>



<a name="168142610"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168142610" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168142610">(Jun 14 2019 at 15:02)</a>:</h4>
<p>this is one of those things I want a DSL to automate away, and salsa's derives are <em>kind of</em> a high-level compiler DSL :P</p>



<a name="168142869"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168142869" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168142869">(Jun 14 2019 at 15:05)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> the generic problem would be alleviated by having entire crates generic over<code>&lt;'db, DB: RustcDb&lt;'db&gt;&gt;</code> :P</p>



<a name="168143028"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168143028" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Vadim Petrochenkov <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168143028">(Jun 14 2019 at 15:07)</a>:</h4>
<p><span class="user-mention" data-user-id="119009">@eddyb</span> </p>
<blockquote>
<p>stuff in rustc_interface which creates one such context for every incremental "generation" (i.e. after every change to the inputs) ... so it's technically not a rustc session for RLS, because the "session" can survive for many generations</p>
</blockquote>
<p>I don't understand what are "generation", "input" and "session" here.<br>
Any specific examples?</p>



<a name="168143099"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168143099" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168143099">(Jun 14 2019 at 15:08)</a>:</h4>
<p><span class="user-mention" data-user-id="116083">@pnkfelix</span> <span class="user-mention" data-user-id="116009">@nikomatsakis</span> <span class="user-mention" data-user-id="116466">@Zoxc</span> <span class="user-mention" data-user-id="124288">@oli</span> <span class="user-mention" data-user-id="126931">@centril</span>  hang on how are we merging <a href="https://github.com/rust-lang/rust/issues/61817" target="_blank" title="https://github.com/rust-lang/rust/issues/61817">#61817</a>? who's r+'-ing it? are we treeclose-ing?</p>



<a name="168143157"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168143157" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168143157">(Jun 14 2019 at 15:09)</a>:</h4>
<p><span class="user-mention" data-user-id="123856">@Vadim Petrochenkov</span> right now you have to run <code>rustc</code> multiple times with <code>-Cincremental=some-dir-name</code> (which <code>cargo</code> does for you) to incrementally recompile with different "input" (i.e. the contents of the files and maybe CLI flags)</p>



<a name="168143179"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168143179" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168143179">(Jun 14 2019 at 15:09)</a>:</h4>
<p>you can call each of those different runs, "generations"</p>



<a name="168143274"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168143274" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168143274">(Jun 14 2019 at 15:10)</a>:</h4>
<p><span class="user-mention" data-user-id="123856">@Vadim Petrochenkov</span> so a "rustc session", ran by RLS, might contain many such generations, as many as one per keypress :P</p>



<a name="168143375"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168143375" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Zoxc <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168143375">(Jun 14 2019 at 15:11)</a>:</h4>
<p>How can you review such large PRs? =P</p>



<a name="168143386"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168143386" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168143386">(Jun 14 2019 at 15:11)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> oh dammit we didn't discuss whether to merge the rustfmt commit!</p>



<a name="168143389"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168143389" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168143389">(Jun 14 2019 at 15:12)</a>:</h4>
<p>how did I forget about it</p>



<a name="168143434"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168143434" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168143434">(Jun 14 2019 at 15:12)</a>:</h4>
<p><span class="user-mention" data-user-id="116466">@Zoxc</span> scrolling while squinting</p>



<a name="168143455"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168143455" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Zoxc <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168143455">(Jun 14 2019 at 15:12)</a>:</h4>
<p>I know github doesn't handle them =P</p>



<a name="168143471"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168143471" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168143471">(Jun 14 2019 at 15:12)</a>:</h4>
<p>ugh</p>



<a name="168143521"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168143521" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168143521">(Jun 14 2019 at 15:13)</a>:</h4>
<p><span class="user-mention" data-user-id="123856">@Vadim Petrochenkov</span> imagine a loop that handles both input changes (by throwing away the global context and starting a new generation, but reusing incremental state) and IDE requests (e.g. "go to def", by querying the appropriate information from the current generation's context) - that's kinda RLS. or will be, in the future (the current situation is a bit messy and the whole "save-analysis" is a disaster we still need to recover from)</p>



<a name="168143528"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168143528" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Zoxc <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168143528">(Jun 14 2019 at 15:13)</a>:</h4>
<p>Doesn't the rustfmt commit touch the same lines as the PR? So it shouldn't matter?</p>



<a name="168143598"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168143598" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168143598">(Jun 14 2019 at 15:14)</a>:</h4>
<p>it may touch the entire signature where the first commit might only have touched one argument type</p>



<a name="168143609"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168143609" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168143609">(Jun 14 2019 at 15:14)</a>:</h4>
<p>other than that, yes</p>



<a name="168143651"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168143651" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Zoxc <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168143651">(Jun 14 2019 at 15:14)</a>:</h4>
<p>The changes lines are the same for both commits and the whole PR, so including it shouldn't cause more breakage</p>



<a name="168143684"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168143684" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Vadim Petrochenkov <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168143684">(Jun 14 2019 at 15:15)</a>:</h4>
<p><span class="user-mention" data-user-id="119009">@eddyb</span> <br>
I see, so it' s a hypothetical future design rather than something that already exists in rustc.<br>
If those generations work with "same code" more or less, then it's indeed reasonable to keep all the global data (like symbol interner), which is apparently going to be a part of this <code>BikeshedCtxt</code>.</p>



<a name="168143780"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168143780" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168143780">(Jun 14 2019 at 15:16)</a>:</h4>
<p><span class="user-mention" data-user-id="123856">@Vadim Petrochenkov</span> maybe. I believe right now it might start from scratch every single time (and is forced to reload from disk). while RLS might not be using it yet (not sure), the code should already exist in <code>rustc_interface</code> (<span class="user-mention" data-user-id="116466">@Zoxc</span> knows more)</p>



<a name="168143836"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168143836" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Zoxc <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168143836">(Jun 14 2019 at 15:17)</a>:</h4>
<p>There's only code to load from disk right now</p>



<a name="168143941"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168143941" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168143941">(Jun 14 2019 at 15:18)</a>:</h4>
<p><span class="user-mention" data-user-id="119009">@eddyb</span> damn we forgot to discuss that, but I got the feeling that it was unanimous that we'll do this, so I guess I can just scroll through it, sign off and you can treeclose and force it through whenever you have a few hours time</p>



<a name="168143976"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168143976" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168143976">(Jun 14 2019 at 15:18)</a>:</h4>
<p>haha</p>



<a name="168144005"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168144005" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168144005">(Jun 14 2019 at 15:19)</a>:</h4>
<p>let's do it!</p>



<a name="168144008"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168144008" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Vadim Petrochenkov <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168144008">(Jun 14 2019 at 15:19)</a>:</h4>
<blockquote>
<p>oh dammit we didn't discuss whether to merge the rustfmt commit!</p>
</blockquote>
<p>GitHub recently implemented a little UX "improvement" - <code>+100 -500</code> line diffs are no longer reported for separate commits.<br>
So e.g. I don't even known how much of that PR is rustfmt and how much is lifetime changes without cloning it locally.<br>
<span aria-label="angry" class="emoji emoji-1f620" role="img" title="angry">:angry:</span></p>



<a name="168144039"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168144039" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168144039">(Jun 14 2019 at 15:20)</a>:</h4>
<p><span class="user-mention" data-user-id="123856">@Vadim Petrochenkov</span> oh right. I can check!</p>



<a name="168144159"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168144159" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168144159">(Jun 14 2019 at 15:20)</a>:</h4>
<p><span class="user-mention" data-user-id="123856">@Vadim Petrochenkov</span> if you go to the commit directly you still get that info: <a href="https://github.com/rust-lang/rust/commit/65257a9bd7d5fc31dec583923f7b4977400de6e6" target="_blank" title="https://github.com/rust-lang/rust/commit/65257a9bd7d5fc31dec583923f7b4977400de6e6">https://github.com/rust-lang/rust/commit/65257a9bd7d5fc31dec583923f7b4977400de6e6</a></p>



<a name="168144195"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168144195" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168144195">(Jun 14 2019 at 15:21)</a>:</h4>
<p><code>git log --shortstat</code>:</p>
<div class="codehilite"><pre><span></span>commit 94cfb14651528288deaa84fd386648ca7520acdb (HEAD -&gt; begone-gcx-attempt-2, origin/begone-gcx-attempt-2)
Author: Eduard-Mihai Burtescu &lt;edy.burt@gmail.com&gt;
Date:   Fri Jun 14 01:32:15 2019 +0300

    Run `rustfmt --file-lines ...` for changes from previous commits.

 107 files changed, 813 insertions(+), 1159 deletions(-)

commit 65257a9bd7d5fc31dec583923f7b4977400de6e6
Author: Eduard-Mihai Burtescu &lt;edy.burt@gmail.com&gt;
Date:   Fri Jun 14 00:48:52 2019 +0300

    Unify all uses of &#39;gcx and &#39;tcx.

 341 files changed, 3110 insertions(+), 3336 deletions(-)
</pre></div>



<a name="168144216"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168144216" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168144216">(Jun 14 2019 at 15:21)</a>:</h4>
<p>oh dammit</p>



<a name="168144223"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168144223" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168144223">(Jun 14 2019 at 15:21)</a>:</h4>
<p>that doesn't give me the delta of files touched</p>



<a name="168144312"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168144312" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168144312">(Jun 14 2019 at 15:22)</a>:</h4>
<p>I guess I can try to compute it? both commits combined are:</p>
<div class="codehilite"><pre><span></span> 341 files changed, 3628 insertions(+), 4200 deletions(-)
</pre></div>



<a name="168144556"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168144556" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Vadim Petrochenkov <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168144556">(Jun 14 2019 at 15:25)</a>:</h4>
<p><span class="user-mention" data-user-id="124288">@oli</span> <br>
That's better than nothing, perhaps there's some way to go to the commit directly without doing manual URL editing?</p>



<a name="168144569"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168144569" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168144569">(Jun 14 2019 at 15:25)</a>:</h4>
<p>yes</p>



<a name="168144579"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168144579" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> oli <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168144579">(Jun 14 2019 at 15:25)</a>:</h4>
<p>you can click the commit id in the PR commit view</p>



<a name="168144727"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168144727" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Zoxc <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168144727">(Jun 14 2019 at 15:27)</a>:</h4>
<p>Seems like it's not insignificant then. I'd prefer to leave rustfmt off then. I'd find it much easier to spot that only <code>TyCtxt</code> changed if there's no formatting changes too</p>



<a name="168144774"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168144774" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168144774">(Jun 14 2019 at 15:27)</a>:</h4>
<p>so the sum is <code>+3923 -4495</code> but the actual combination is <code>+3628 -4200</code></p>



<a name="168144885"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168144885" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168144885">(Jun 14 2019 at 15:28)</a>:</h4>
<p>I second <span class="user-mention" data-user-id="123856">@Vadim Petrochenkov</span>'s motion for brevity; <code>qx: QCx&lt;'q&gt;</code> would be neat</p>



<a name="168144887"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168144887" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168144887">(Jun 14 2019 at 15:28)</a>:</h4>
<p>so <code>+295 -295</code> (i.e. <code>295</code> changed lines) are shared</p>



<a name="168145693"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168145693" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168145693">(Jun 14 2019 at 15:36)</a>:</h4>
<p><span class="user-mention" data-user-id="116466">@Zoxc</span> <span class="user-mention" data-user-id="123856">@Vadim Petrochenkov</span> sorry, got distracted: so my guess is that the second commit has <code>+518 -864</code> changes which touch lines not touched by the main commit</p>



<a name="168145774"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168145774" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168145774">(Jun 14 2019 at 15:37)</a>:</h4>
<p>the large negative diff is from multi-line signatures collapsing into a single line now, I think?</p>



<a name="168680417"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168680417" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168680417">(Jun 21 2019 at 13:19)</a>:</h4>
<p>I added some notes from the gcx, tcx design meeting here:</p>
<p><a href="https://github.com/rust-lang/compiler-team/pull/108" target="_blank" title="https://github.com/rust-lang/compiler-team/pull/108">https://github.com/rust-lang/compiler-team/pull/108</a></p>
<p>these are basically the hackmd proposal plus the notes I made live. </p>
<p>Do we think this transition is basically done? (i.e., all affected PRs are updated etc)</p>



<a name="168680549"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168680549" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> pnkfelix <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168680549">(Jun 21 2019 at 13:21)</a>:</h4>
<p>From the T-compiler meeting yesterday it sounded like <span class="user-mention" data-user-id="119009">@eddyb</span> was treating it as "gone done done."</p>



<a name="168699475"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/131828-t-compiler/topic/design%20meeting%202019.06.14/near/168699475" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> eddyb <a href="https://rust-lang.github.io/zulip_archive/stream/131828-t-compiler/topic/design.20meeting.202019.2E06.2E14.html#168699475">(Jun 21 2019 at 17:23)</a>:</h4>
<p>yeah pretty much. it's just the longer-term renaming that's yet to be started on</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>